const CompressionPlugin  = require('compression-webpack-plugin')
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')

module.exports = {
  // 基本路径
  publicPath: './', // vue-cli3.3+新版本使用
  // 输出文件目录
  outputDir: 'dist',
  // eslint-loader 是否在保存的时候检查
  lintOnSave: true,
  // 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录。
  assetsDir: 'static',
  // 以多页模式构建应用程序。
  pages: undefined,
  // 是否使用包含运行时编译器的 Vue 构建版本
  runtimeCompiler: false,
  // 生产环境是否生成 sourceMap 文件，一般情况不建议打开
  productionSourceMap: true,
  chainWebpack: config => {
    config.plugins.delete('prefetch')
    config.plugin('CompressionPlugin').use(CompressionPlugin, [{
      algorithm: 'gzip',
      test: /\.js$|\.html$|\.json$|\.css/,
      threshold: 10240,
      minRatio: 0.8 }])
    config.optimization.minimizer([
      new UglifyJsPlugin({
        uglifyOptions: {
          compress: {
            drop_console: true, // console
            pure_funcs: ['console.log'] // 移除console
          }
        }
      })
    ])
    config.set('externals', {
      vue: 'Vue',
      'vue-awesome-swiper': 'VueAwesomeSwiper',
      swiper: 'Swiper'
    })
  }
}